home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 2002 #11
/
Amiga Plus CD - 2002 - No. 11.iso
/
Tools
/
Development
/
PowerD
/
powerd
/
source
/
lib
/
powerd_lib.lha
/
PowerD_PPC
/
Val.d
< prev
next >
Wrap
Text File
|
2001-03-26
|
708b
|
39 lines
OPT PPC,NOEXE,NOSTD
PROC Val(s:PTR TO CHAR,n=0)(LONG,LONG)
DEF num=0,sign=1
WHILE s[n]="\t" OR s[n]="\n" OR s[n]=" " DO n++
IF s[n]="-"
sign:=-1
n++
ENDIF
IF s[n]="%" // BINARY number
n++
WHILE s[n]="0" OR s[n]="1"
num<<=1
num|=s[n]-"0"
n++
ENDWHILE
ELSEIF s[n]="$" // HEXADECIMAL number
n++
WHILE s[n]>="0" AND s[n]<="9"
num<<=4
num|=s[n]-"0"
ELSEWHILE s[n]>="a" AND s[n]<="f"
num<<=4
num|=s[n]-"a"+10
ELSEWHILE s[n]>="A" AND s[n]<="F"
num<<=4
num|=s[n]-"A"+10
ALWAYS
n++
ENDWHILE
ELSE // DECIMAL number
WHILE s[n]>="0" AND s[n]<="9"
num*=10
num+=s[n]-"0"
n++
ENDWHILE
ENDIF
ENDPROC num*sign,n